It is generally true that data needs to be detected in a noisy and/or distorted input signal. For example, in a communications system, data is transmitted from a source location to a destination location via a transmission medium. While propagating through the medium, the data signal picks up noise from the medium and other sources. When the signal is received at the destination location, it is necessary to extract the data from the noisy signal. It is desired that the extracted data be identical to the data transmitted from the source location, but often errors will exist in the extracted data. As can be appreciated, if the detected data is not a sufficiently accurate representation of the transmitted information, the data will be of little or no use to the party receiving the data.
An equally demanding application that requires data to be detected from a noisy input signal is data storage. For example, in a magnetic disk drive system, data is stored as a coded series (i.e., a binary series) of magnetic transitions, frequently referred to as pulses, recorded on the surface of a magnetic disk. When data is transferred to and from the disk, the transitions nominally exhibit a Lorentzian shape, which is generally to a degree distorted. Some distortion is deterministic due to geometry of the head/media system. But, some is variable due to proximity of other transitions, localized deformities in the media, and irregular grain structure of the media. In addition, noise is added to the data signal from head (transducer) resistance, cable parasitics, and electronics. Collectively, noise and variable distortion tends to obscure the data.
As with communication systems, it is very important that the detected data in a data storage system be an accurate representation of the data that was originally stored on the media. To compensate for the occurrence of errors in the read data, most data storage systems apply error correction coding to the data before it is stored on the media. Then, if errors are present in the read data, the system is virtually always capable of correcting the errors before the data is delivered to the user. However, ECC coding adds overhead to the system that decreases the overall amount of user data that can be stored on a particular media, and it adds to system cost, both in proportion to the amount of ECC that must be applied to decrease detected error rates to an acceptable level.
Therefore, it is advantageous to develop a system for detecting data in a noisy and/or distorted signal that reduces the detected error rate. Such a system would be capable of operation with lower levels of error correction coding and would thus allow an increased amount of user data to be stored on a given storage medium.